#include <iostream>
#include <signal.h>
#include <unistd.h>

int main()
{
    // 创建信号集
    sigset_t block_set, old_set;
    // 初始化
    sigemptyset(&block_set);
    sigemptyset((&old_set));
    // 添加2号信号到set信号集
    sigaddset(&block_set, SIGINT);
    // 屏蔽 2 号信号
    sigprocmask(SIG_BLOCK, &block_set, &old_set);

    while (true)
    {
        std::cout << getpid() << " is running...." << std::endl;
        sleep(1);
    }

    return 0;
}

// void sigcb(int signum)
// {
//     std::cout << " get sig : " << signum << std::endl;
//     sleep(1);
// }

// int main()
// {
//     // 1、创建struct sigaction类型的对象
//     struct sigaction act, old_act;
//     // 2、指定自定类捕捉方法
//     act.sa_handler = sigcb;
//     act.sa_flags = 0;
//     // 3、捕捉2号信号
//     sigaction(2, &act, &old_act);

//     while (true)
//     {
//         std::cout << getpid() << " is running...." << std::endl;
//         sleep(1);
//     }

//     return 0;
// }

// void sigcb(int signum)
// {
//     std::cout << " get sig : " << signum << std::endl;
//     sleep(1);
// }

// int main()
// {
//     // 捕捉 2 Hao信号
//     signal(2,sigcb);

//     while (true)
//     {
//         std::cout << getpid() << " is running...." << std::endl;
//         sleep(1);
//     }

//     return 0;
// }
